Technical Q&A

DV 27 - Device Driver Flags (10-March-97)


Q I'm debugging my PCI native driver and notice that the dCtlFlags field of my Device Control Entry (DCE) has some undocumented bits set. What do these flags mean?

A The current bits in the dCtlFlags field of the DCE are:
  • bit 0 -- VMImmune -- This bit indicates that your device driver is VM safe. See Technote NW 13 for details.
  • bit 1 -- reserved
  • bit 2 -- kmDriverGestaltEnableMask (in "DriverGestalt.h") is set if the driver supports the Driver Gestalt mechanism. See "Designing PCI Cards and Drivers for Power Macintosh Computers" for a description of Driver Gestalt.
  • bit 3 -- Native Driver -- Set if the driver is a native driver (ndrv). The system will set this bit when it loads your native driver.
  • bit 4 -- Concurrent -- Set if the native driver supports concurrent operation. When loading a native driver, the system sets this bit based on the kDriverIsConcurrent field of the driverOSRuntimeInfo.driverRuntime field of your DriverDescription. See "Designing PCI Cards and Drivers for Power Macintosh Computers" for a description of concurrent drivers.
  • bit 5 -- dOpenedMask (in "Devices.h") is set if the driver is open.
  • bit 6 -- dRAMBasedMask (in "Devices.h") is set if the dCtlDriver field is a DRVRHeaderHandle rather than aDRVRHeaderPtr .
  • bit 7 -- drvrActiveMask (in "Devices.h") is set if the driver is currently processing a request.
  • bit 8 -- dReadEnableMask (in "Devices.h") is set if the driver handles _Read requests.
  • bit 9 -- dWritEnableMask (in "Devices.h") is set if the driver handles _Write requests.
  • bit 10 -- dCtlEnableMask (in "Devices.h") is set if the driver handles _Control requests.
  • bit 11 -- dStatEnableMask (in "Devices.h") is set if the driver handles _Status requests.
  • bit 12 -- dNeedGoodByeMask (in "Devices.h") is set if the driver needs a "goodbye" _Control call before the application heap is reinitialized.
  • bit 13 -- dNeedTimeMask (in "Devices.h") is set if the driver wants periodic SystemTask time through the "accRun" _Control call.
  • bit 14 -- dNeedLockMask (in "Devices.h") is set if the driver requires that its DCE and code be locked at all times when the driver is open.
  • bit 15 -- reserved

See "Inside Macintosh:Devices" for more information about bits 5 through to 14.



-- Quinn "The Eskimo!"
Worldwide Developer Technical Support

Technical Q&A
Previous Question | Contents | Next Question

To contact us, please use the Contact Us page.